package models;
import static org.junit.Assert.*;
import org.junit.Test;
public class BankTest {
@Test
public void testAddPerson() {
Bank.deserialize();
Person p = new Person("Test", 20);
boolean flag = false;
try {
Bank.getInstance().addPerson(p);
} catch (IllegalOperationException e) {
e.printStackTrace();
assertTrue(true);
return;
}
for(Person pp: Bank.getInstance().getInfo().keySet())
if(p.equals(pp)){
flag = true;
break;
}
assertTrue(flag);
}
@Test
public void testRemovePerson() {
Bank.deserialize();
Person p = (Person) Bank.getInstance().getInfo().keySet().toArray()[0];
try {
Bank.getInstance().removePerson(p);
} catch (IllegalOperationException e) {
e.printStackTrace();
assertTrue(true);
return;
}
assertFalse(Bank.getInstance().getInfo().containsKey(p));
}
@Test
public void testAddAccount() {
Bank.deserialize();
Person p = (Person) Bank.getInstance().getInfo().keySet().toArray()[0];
Account a = null;
try {
a = new SavingsAccount(400);
} catch (NotEnoughFundsException e1) {
e1.printStackTrace();
assertTrue(true);
return;
}
try {
Bank.getInstance().addAccount(p, a);
} catch (IllegalOperationException e) {
e.printStackTrace();
assertTrue(true);
return;
}
assertTrue(Bank.getInstance().getInfo().get(p).contains(a));
}
@Test
public void testRemoveAccount() {
Bank.deserialize();
Person p = (Person) Bank.getInstance().getInfo().keySet().toArray()[0];
Account a = Bank.getInstance().getInfo().get(p).get(0);
try {
Bank.getInstance().removeAccount(p, a);
} catch (IllegalOperationException e) {
e.printStackTrace();
assertTrue(true);
return;
}
assertFalse(Bank.getInstance().getInfo().get(p).contains(a));
}
}